Tugas Analisis Multimedia: Audio, Gambar, Video¶
Mata Kuliah: Sistem & Teknologi Multimedia
Nama: Elma Nurul Fatika
NIM: 122140069
Deskripsi Tugas¶
Tugas ini bertujuan untuk memahami representasi dasar data multimedia (audio, gambar, dan video) melalui praktik langsung memuat data, visualisasi, dan ekstraksi informasi fundamental. Anda akan bekerja dengan tiga jenis media berbeda untuk menganalisis karakteristik temporal (audio), spasial (gambar), dan spatio-temporal (video).
Fokus tugas adalah pada pemahaman konsep dasar representasi multimedia dan kemampuan interpretasi hasil visualisasi, bukan pada manipulasi atau transformasi lanjutan data multimedia.
⚠️ CATATAN PENTING: PRESENTASI ACAK & KEJUJURAN AKADEMIK¶
Sebagian mahasiswa akan dipilih secara ACAK untuk presentasi singkat (5-10 menit) menjelaskan kode dan interpretasi hasil mereka. Jika Anda:
- Tidak mampu menjelaskan kode yang Anda kumpulkan
- Hanya menyalin-tempel tanpa pemahaman
- Bergantung sepenuhnya pada AI tanpa memahami konsep
Maka nilai tugas Anda akan diberikan 0 (nol).
Gunakan referensi dan AI sebagai alat bantu pembelajaran, tetapi pastikan Anda memahami setiap baris kode dan dapat menjelaskan logika di baliknya.
# Import Library (Satu-satunya sel kode dalam template ini)
import numpy as np
import matplotlib.pyplot as plt
import librosa
import soundfile as sf
from PIL import Image
import cv2
from IPython.display import Audio, HTML, display
import os
import matplotlib
# Set matplotlib untuk menampilkan plot inline
%matplotlib inline
# Tampilkan versi library untuk dokumentasi
print("Library versions:")
print(f"NumPy: {np.__version__}")
print(f"Matplotlib: {matplotlib.__version__}")
print(f"Librosa: {librosa.__version__}")
print(f"OpenCV: {cv2.__version__}")
# Tambahkan import lain jika diperlukan saat mengerjakan tugas
Library versions: NumPy: 2.2.6 Matplotlib: 3.10.6 Librosa: 0.11.0 OpenCV: 4.12.0
Petunjuk Umum Pengerjaan¶
📋 Cara Menggunakan Template¶
- Gunakan notebook ini sebagai kerangka kerja utama
- Tulis penjelasan (markdown) SEBELUM menaruh kode agar maksud dan tujuan jelas
- Tambahkan sel kode di tempat yang sudah disediakan (tandai dengan TODO)
- Semua plot/gambar harus diberi judul, label sumbu, dan keterangan singkat
📊 Standar Visualisasi¶
- Setiap plot harus memiliki judul yang deskriptif
- Label sumbu X dan Y harus jelas
- Gunakan colorbar untuk plot yang memerlukan skala warna
- Berikan interpretasi singkat setelah setiap visualisasi
📂 Struktur Data yang Direkomendasikan¶
- Buat folder
data/di direktori yang sama dengan notebook - Gunakan nama file yang deskriptif (contoh:
audio_musik_piano.wav,gambar_pemandangan_gunung.jpg) - Dokumentasikan sumber data jika menggunakan dataset publik
⚠️ Larangan¶
- Jangan menaruh seluruh pekerjaan dalam satu sel kode yang sangat panjang
- Jangan menempel hasil output tanpa interpretasi atau analisis
- Jangan bergantung sepenuhnya pada AI - pahami dan kuasai kode Anda
🎯 Persiapan Presentasi Acak¶
- Pastikan Anda memahami setiap baris kode yang ditulis
- Latih menjelaskan logika dan alur pemikiran Anda
- Siapkan penjelasan untuk setiap visualisasi dan interpretasinya
Checklist Kelengkapan (Centang ✅ saat selesai)¶
🎵 Bagian Audio¶
- [✅] Muat audio dan tampilkan metadata (durasi, sample rate, jumlah kanal)
- [✅] Tampilkan waveform dengan label sumbu yang jelas
- [✅] Tampilkan spectrogram dalam skala log-dB dengan colorbar
- [✅] Tampilkan MFCC (minimal 13 koefisien) sebagai heatmap
- [✅] Berikan interpretasi dan analisis untuk setiap visualisasi audio
🖼️ Bagian Gambar¶
- [✅] Tampilkan gambar dengan benar dalam format RGB
- [✅] Tampilkan informasi dasar (dimensi, jumlah kanal, dtype)
- [✅] Tampilkan histogram warna untuk channel R, G, B
- [✅] Berikan analisis hubungan histogram dengan kesan visual gambar
📹 Bagian Video¶
- [✅] Tampilkan metadata video (resolusi, fps, frame count, durasi)
- [✅] Tampilkan 3 frame representatif (awal, tengah, akhir)
- [✅] Konversi BGR ke RGB dengan benar untuk visualisasi
- [✅] Analisis kesesuaian parameter video dengan use case
📝 Analisis & Dokumentasi¶
- [✅] Setiap bagian memiliki interpretasi dan analisis ringkas
- [✅] Perbandingan representasi ketiga jenis media
- [✅] Kesimpulan pembelajaran dan refleksi
- [✅] Semua sumber data dan referensi dicantumkan
Pendahuluan¶
Apa itu Data Multimedia?¶
Data multimedia adalah informasi yang dikodekan dalam berbagai format untuk merepresentasikan dunia nyata:
Audio (1D): Sinyal satu dimensi yang berubah terhadap waktu
- Contoh: musik, suara, speech
- Representasi: amplitudo vs waktu
Gambar (2D): Matriks nilai intensitas dalam ruang dua dimensi
- Contoh: foto, ilustrasi, grafik
- Representasi: intensitas pixel pada koordinat (x,y)
Video (2D + Waktu): Rangkaian frame (gambar) yang ditampilkan berurutan
- Contoh: film, rekaman, animasi
- Representasi: frame berubah terhadap waktu dengan frame rate tertentu
Tujuan Tugas¶
Memahami representasi dasar dan teknik visualisasi fundamental untuk setiap jenis media multimedia, termasuk:
- Cara memuat dan membaca file multimedia
- Ekstraksi informasi metadata yang penting
- Visualisasi yang informatif dan mudah dipahami
- Interpretasi hasil analisis secara kontekstual
Cara Kerja¶
- Isi setiap bagian sesuai instruksi yang diberikan
- Tambahkan sel kode di tempat yang ditandai dengan "TODO"
- Berikan interpretasi dan analisis setelah setiap visualisasi
- Pastikan semua plot memiliki judul, label, dan keterangan yang jelas
Bagian A — Audio¶
A1. Deskripsi Data¶
TODO: Jelaskan audio yang akan Anda analisis:
- Jenis audio: Suara kucing marah
- Sumber: Youtube
- Format file: WAV
- Alasan pemilihan: karena suara kucing marah memiliki suara seperti teriak dan rendah seperti menggeram (bervariasi), dan kucing saya di rumah juga sering berantem
Path file: data/_____.wav (isi nama file Anda nanti di kode)
A2. TODO: Muat & Metadata¶
Instruksi: Tulis kode untuk memuat file audio dan menampilkan metadata dasar:
- Sample rate (Hz)
- Durasi (detik)
- Jumlah kanal (mono/stereo)
- Jumlah total sampel
Catatan: Jika file MP3 bermasalah saat loading, gunakan format WAV sebagai alternatif.
audio_path = 'data\suara-kucing-marah.wav' #path audio
audio_data, sample_rate = sf.read(audio_path) #membaca file audio
duration = len(audio_data) / sample_rate #menghitung durasi audio
channels = audio_data.shape[1] if audio_data.ndim > 1 else 1 #menghitung jumlah kanal, kalau data punya dimensi > 1 maka stereo (menggunakan shape[1])
total_samples = audio_data.shape[0] #menghitung jumlah total sampel
from IPython.display import Audio
# Menampilkan informasi audio
print(f"Sample rate: {sample_rate} Hz")
print(f"Durasi: {duration:.2f} detik")
print(f"Jumlah kanal: {channels} ({'Stereo' if channels == 2 else 'Mono'})")
print(f"Jumlah total sampel: {total_samples}")
Audio(audio_path)
Sample rate: 44100 Hz Durasi: 44.98 detik Jumlah kanal: 2 (Stereo) Jumlah total sampel: 1983488